<!DOCTYPE html>
<html class="client-nojs vector-feature-language-in-header-enabled vector-feature-language-in-main-page-header-disabled vector-feature-page-tools-pinned-disabled vector-feature-toc-pinned-clientpref-0 vector-toc-not-available vector-feature-main-menu-pinned-disabled vector-feature-limited-width-clientpref-1 vector-feature-limited-width-content-enabled vector-feature-custom-font-size-clientpref-1 vector-feature-appearance-pinned-clientpref-0 skin-theme-clientpref-day vector-sticky-header-enabled" lang="de" dir="ltr"><head>
<meta charset="UTF-8">
<title>Google File System</title>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link rel="icon" type="image/png" href="./_res_/favicon.png">
<link rel="canonical" href="https://de.wikipedia.org/wiki/Google_File_System"> <link href="./_mw_/ext.cite.styles.css" rel="stylesheet" type="text/css">
<link href="./_mw_/ext.wikimediamessages.styles.css" rel="stylesheet" type="text/css">
<link href="./_mw_/skins.vector.icons.css" rel="stylesheet" type="text/css">
<link href="./_mw_/skins.vector.search.codex.styles.css" rel="stylesheet" type="text/css">
<link href="./_mw_/skins.vector.styles.css" rel="stylesheet" type="text/css">
<meta name="ResourceLoaderDynamicStyles" content="">
<link href="./_mw_/ext.gadget.citeRef.css" rel="stylesheet" type="text/css">
<link href="./_mw_/ext.gadget.defaultPlainlinks.css" rel="stylesheet" type="text/css">
<link href="./_mw_/ext.gadget.dewikiCommonHide.css" rel="stylesheet" type="text/css">
<link href="./_mw_/ext.gadget.dewikiCommonLayout.css" rel="stylesheet" type="text/css">
<link href="./_mw_/ext.gadget.dewikiCommonStyle.css" rel="stylesheet" type="text/css">
<link href="./_mw_/ext.gadget.dewikiDarkmode.css" rel="stylesheet" type="text/css">
<link href="./_mw_/ext.gadget.dewikiResponsive.css" rel="stylesheet" type="text/css">
<link href="./_mw_/ext.gadget.specialSearch.css" rel="stylesheet" type="text/css">
<link rel="stylesheet" type="text/css" href="./_mw_/site.styles.css">
<link rel="stylesheet" type="text/css" href="./_mw_/noscript.css">
<link rel="stylesheet" type="text/css" href="./_res_/footer.css">
<link rel="stylesheet" type="text/css" href="./_res_/vector-2022.css">
</head>
<body class="skin--responsive skin-vector skin-vector-search-vue mediawiki ltr sitedir-ltr mw-hide-empty-elt ns-0 ns-subject page-Google_File_System rootpage-Google_File_System skin-vector-2022 action-view">
<div class="mw-page-container">
<div class="mw-page-container-inner">
<div class="mw-content-container">
<main id="content" class="mw-body">
<header class="mw-body-header vector-page-titlebar">
<h1 id="firstHeading" class="firstHeading mw-first-heading"><span class="mw-page-title-main">Google File System</span></h1>
</header>
<a id="top"></a>
<div id="bodyContent" class="vector-body ve-init-mw-desktopArticleTarget-targetContainer" aria-labelledby="firstHeading" data-mw-ve-target-container="">
<div id="contentSub">
<div id="mw-content-subtitle"></div>
</div>
<div id="mw-content-text" class="mw-body-content mw-content-ltr" lang="de" dir="ltr"><div class="mw-content-ltr mw-parser-output" lang="de" dir="ltr"><p>Das <b>Google File System</b> (<b>GFS</b> oder <b>GoogleFS</b>) ist ein proprietäres <a href="Verteiltes_Dateisystem" title="Verteiltes Dateisystem">verteiltes Dateisystem</a> für Linux-basierte Systeme, das Google intern entwickelte, um große Datenmengen vor allem aus dem Index der <a href="Google_Suche" class="mw-redirect" title="Google Suche">Google-Suche</a> und später auch aus <a href="Gmail" title="Gmail">Gmail</a> zu speichern und zu verarbeiten.<sup id="cite_ref-google-fs-paper-2003_1-0" class="reference"><a href="#cite_note-google-fs-paper-2003-1"><span class="cite-bracket">[</span>1<span class="cite-bracket">]</span></a></sup><sup id="cite_ref-google-fs-2-2009_2-0" class="reference"><a href="#cite_note-google-fs-2-2009-2"><span class="cite-bracket">[</span>2<span class="cite-bracket">]</span></a></sup> Das Google File System kennt zwei Arten von Komponenten: die Master- und die Chunkserver. Erstere halten lediglich Metainformationen über Dateien, während letztere die tatsächlichen Daten auf einem klassischen <a href="Linux" title="Linux">Linux</a>-<a href="Dateisystem" title="Dateisystem">Dateisystem</a> persistieren. Das Google File System unterteilt die Dateien dafür in <a href="Datenblock" title="Datenblock">Chunks</a>, so dass eine Datei auf mehrere Server aufgeteilt werden kann. In der ersten Version war jeder Chunk 64 Megabyte groß, während die Größe später auf 1 MB aktualisiert wurde (Stand 2009).<sup id="cite_ref-google-fs-2-2009_2-1" class="reference"><a href="#cite_note-google-fs-2-2009-2"><span class="cite-bracket">[</span>2<span class="cite-bracket">]</span></a></sup> Das Google File System arbeitet eine Abstraktionsebene höher als typische Dateisysteme und kümmert sich lediglich um die Verteilung, unter Gewährleistung von <a href="Verf%C3%BCgbarkeit" title="Verfügbarkeit">Verfügbarkeit</a> und <a href="Konsistenz_(Datenspeicherung)" title="Konsistenz (Datenspeicherung)">Konsistenz</a> der Daten.<sup id="cite_ref-google-fs-paper-2003_1-1" class="reference"><a href="#cite_note-google-fs-paper-2003-1"><span class="cite-bracket">[</span>1<span class="cite-bracket">]</span></a></sup> Es ist für einen hohen Datendurchsatz optimiert und kann hunderte von Terabytes verteilt auf tausende Festplatten auf tausenden Maschinen verwalten.<sup id="cite_ref-google-fs-2-2009_2-2" class="reference"><a href="#cite_note-google-fs-2-2009-2"><span class="cite-bracket">[</span>2<span class="cite-bracket">]</span></a></sup>
</p>
<div class="mw-heading mw-heading2"><h2 id="Aufbau">Aufbau</h2></div>
<p>Das Google File System ist an die notwendigen Anforderungen der <i>Websuche</i> angepasst, die eine enorme Menge an zu speichernden Daten generiert. GFS entstand aus einem früheren Versuch Googles, welcher den Namen „BigFiles“ trägt und von <a href="Larry_Page" title="Larry Page">Larry Page</a> sowie <a href="Sergey_Brin" title="Sergey Brin">Sergey Brin</a> während ihrer Forschungstätigkeit an der <a href="Stanford_University" title="Stanford University">Stanford University</a> entwickelt wurde.
</p><p>Die Daten werden durchgehend in sehr großen, teilweise sogar mehrere <a href="Speicherkapazit%C3%A4t" title="Speicherkapazität">Gigabyte</a> großen Dateien gespeichert, welche nur in extrem seltenen Fällen gelöscht, überschrieben oder <a href="Datenkompression" title="Datenkompression">komprimiert</a> werden; Daten werden üblicherweise angehängt oder ausgelesen. Das <a href="Dateisystem" title="Dateisystem">Dateisystem</a> ist auch entworfen und optimiert worden, um auf Googles rechnenden <a href="Rechnerverbund" title="Rechnerverbund">Clustern</a> laufen zu können, deren <a href="Netzwerkelement" title="Netzwerkelement">Netzknoten</a> aus handelsüblichen PCs bestehen. Dies bedeutet allerdings auch, dass man die hohe Ausfallrate und den damit verbundenen Datenverlust individueller Netzknoten als Normalzustand ansehen muss. Das äußert sich auch darin, dass kein Unterschied zwischen normaler (Herunterfahren) und abnormaler Beendigung (Absturz) gemacht wird: Serverprozesse werden standardmäßig per <a href="Kill_(Unix)" title="Kill (Unix)">Killbefehl</a> beendet. Andere Designentscheidungen setzen auf hohe Datendurchsatzraten, auch wenn dies auf Kosten der <a href="Verz%C3%B6gerung_(Telekommunikation)" title="Verzögerung (Telekommunikation)">Latenzzeit</a> geht.
</p><p>Ein <i>GFS Cluster</i> besteht aus einem <i>Master</i> und hunderten oder tausenden <i>Chunkservern</i>. Die Chunkserver speichern die Dateien, wobei jede Datei in 64 MB große Stücke <i>(„Chunks“)</i> gespalten ist, ähnlich <a href="Cluster_(Datentr%C3%A4ger)" title="Cluster (Datenträger)">Clustern</a> oder <a href="Datenblock" title="Datenblock">Sektoren</a> in gebräuchlichen Dateisystemen.
</p><p>Um Datenverlust zu verhindern, wird jede Datei beim GFS standardmäßig mindestens dreimal pro Cluster gespeichert. Bei Ausfall eines Chunkservers treten nur verschwindend geringe Verzögerungen auf, bis die Datei wieder ihre Standardanzahl an Replikas besitzt. Je nach Bedarf kann die Anzahl auch höher liegen, etwa bei <a href="Ausf%C3%BChrbare_Datei" title="Ausführbare Datei">ausführbaren Dateien</a>. Jedem Chunk wird eine eindeutige, 64 Bit lange Kennzeichnung zugewiesen, logische Mappings der Dateien zu den einzelnen Chunks werden beibehalten.
</p><p>Der Master speichert keine Chunks, sondern vielmehr deren <a href="Metadaten" title="Metadaten">Metadaten</a>, wie etwa <a href="Dateiname" title="Dateiname">Dateinamen</a>, Dateigrößen, ihren Speicherort sowie den ihrer Kopien, welche <a href="Prozess_(Informatik)" title="Prozess (Informatik)">Prozesse</a> gerade auf welchen Chunk zugreifen etc. Die Master erhalten jegliche Anfragen für eine Datei und liefern als Antwort die dazugehörigen Chunkserver und erteilen entsprechende Sperren an den Prozess. Ein Client darf allerdings für gewisse Zeit die Adresse der Chunkserver <a href="Cache" title="Cache">cachen</a>. Fällt die Anzahl an verfügbaren Replikas unter die Normzahl, sind es auch die Master, die die Erstellung einer neuen Chunkkopie anstoßen. Die Metadaten werden aktuell gehalten, indem die Master regelmäßig Aktualisierungsanfragen an die Chunkserver senden („<a href="Heartbeat_(Informatik)" title="Heartbeat (Informatik)">heart-beat</a> messages“, auf Deutsch etwa: „Herzschlag-Nachrichten“).
</p><p>Design und Implementierung des GFS sehen nur einen Master pro Cluster vor. Dies hat den Anschein, ein Fehler im System zu sein, der dessen <a href="Skalierbarkeit" title="Skalierbarkeit">Skalierbarkeit</a> und Zuverlässigkeit begrenzt, da die maximale Größe und <a href="Uptime" title="Uptime">Uptime</a> von der Leistungsfähigkeit und Uptime des Masters abhängt, da dieser die Metadaten katalogisiert und fast alle Anfragen durch ihn laufen; Googles Techniker haben allerdings durch Messungen gezeigt, dass dies (zumindest bis jetzt) nicht der Fall und GFS sehr wohl skalierbar ist. Der Master ist im Normalfall der leistungsfähigste Netzknoten im Netzwerk. Um die <a href="Ausfallsicherheit" title="Ausfallsicherheit">Ausfallsicherheit</a> sicherzustellen, gibt es mehrere „Schatten-Master“, die den Hauptrechner spiegeln und notfalls, sollte der Master einmal ausfallen, sofort einspringen. Zusätzlich stehen die Schattenmaster auch für reine Leseanfragen, die ja den Haupttraffic ausmachen, zur Verfügung, so dass sich die Skalierbarkeit dadurch weiter erhöht. Engstellen gibt es nur selten, da <a href="Client" title="Client">Clients</a> nur nach Metadaten fragen, die komplett im <a href="Arbeitsspeicher" title="Arbeitsspeicher">Arbeitsspeicher</a> als <a href="B-Baum" title="B-Baum">B-Baum</a> vorgehalten werden – sie sind sehr kompakt, pro Megabyte Daten fallen lediglich einige Bytes an. Durch den Einsatz nur eines Hauptknotens verringert sich die Software<a href="Komplexit%C3%A4t_(Informatik)" title="Komplexität (Informatik)">komplexität</a> drastisch, da Schreiboperationen nicht koordiniert werden müssen.
</p>
<div class="mw-heading mw-heading2"><h2 id="Literatur">Literatur</h2></div>
<ul><li>Matthew Helmke: <i>Ubuntu Unleashed 2015 Edition</i>. Pearson Education Inc, 2015, ISBN 978-0-672-33837-3.</li>
<li>Kuan-Ching Li, Qing Li, Timothy K. Shih (Hrsg.): <i>Cloud Computing and Digital Media</i>. Taylor & Francis Group, Boca Raton 2014, ISBN 978-1-4665-6917-1.</li>
<li>Kenli Li, Zheng Xiao, Yan Wang, Jiayi Du, Keqin Li (Hrsg.): <i>Parallel Computational Fluid Dynamics</i>. Springer Verlag, Berlin / Heidelberg 2014, ISBN 978-3-642-53961-9.</li>
<li>Yunquan Zhang, Kenli Li, Zheng Xiao (Hrsg.): <i>High Performance Computing</i>. Springer Verlag, Berlin / Heidelberg 2012, ISBN 978-3-642-41590-6.</li></ul>
<div class="mw-heading mw-heading2"><h2 id="Siehe_auch">Siehe auch</h2></div>
<ul><li><a href="Amazon_Dynamo" title="Amazon Dynamo">Amazon Dynamo</a></li></ul>
<div class="mw-heading mw-heading2"><h2 id="Einzelnachweise">Einzelnachweise</h2></div>
<div class="mw-references-wrap"><ol class="references">
<li id="cite_note-google-fs-paper-2003-1"><span class="mw-cite-backlink">↑ <sup><a href="#cite_ref-google-fs-paper-2003_1-0">a</a></sup> <sup><a href="#cite_ref-google-fs-paper-2003_1-1">b</a></sup></span> <span class="reference-text"><span class="book">S. Ghemawat, H. Gobioff, S. T. Leung: <cite class="lang" lang="en" dir="auto" style="font-style:italic">Proceedings of the nineteenth ACM Symposium on Operating Systems Principles – SOSP '03</cite>. 2003, ISBN 1-58113-757-5, The Google file system, <span style="white-space:nowrap">S.<span style="display:inline-block;width:.2em"> </span>29</span>, <a href="Digital_Object_Identifier" title="Digital Object Identifier">doi</a>:<span class="uri-handle" style="white-space:nowrap"><a rel="nofollow" class="external text" href="https://doi.org/10.1145/945445.945450">10.1145/945445.945450</a></span> (englisch, <a rel="nofollow" class="external text" href="http://static.googleusercontent.com/media/research.google.com/en//archive/gfs-sosp2003.pdf">googleusercontent.com</a> [PDF]).<span class="Z3988" title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abookitem&rfr_id=info:sid/de.wikipedia.org:Google+File+System&rft.atitle=The+Google+file+system&rft.au=S.+Ghemawat%2C+H.+Gobioff%2C+S.+T.+Leung&rft.btitle=Proceedings+of+the+nineteenth+ACM+Symposium+on+Operating+Systems+Principles+-+SOSP+%2703&rft.date=2003&rft.doi=10.1145%2F945445.945450&rft.genre=bookitem&rft.isbn=1581137575&rft.pages=29" style="display:none"> </span></span></span>
</li>
<li id="cite_note-google-fs-2-2009-2"><span class="mw-cite-backlink">↑ <sup><a href="#cite_ref-google-fs-2-2009_2-0">a</a></sup> <sup><a href="#cite_ref-google-fs-2-2009_2-1">b</a></sup> <sup><a href="#cite_ref-google-fs-2-2009_2-2">c</a></sup></span> <span class="reference-text"><span class="cite"><a rel="nofollow" class="external text" href="https://queue.acm.org/detail.cfm?id=1594206"><i>GFS: Evolution on Fast-forward.</i></a><span class="Abrufdatum"> Abgerufen am 24. Februar 2021</span> (englisch).</span><span style="display: none;" class="Z3988" title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Adc&rfr_id=info%3Asid%2Fde.wikipedia.org%3AGoogle+File+System&rft.title=GFS%3A+Evolution+on+Fast-forward&rft.description=GFS%3A+Evolution+on+Fast-forward&rft.identifier=https%3A%2F%2Fqueue.acm.org%2Fdetail.cfm%3Fid%3D1594206&rft.language=en"> </span></span>
</li>
</ol></div>
<div class="mw-heading mw-heading2"><h2 id="Weblinks">Weblinks</h2></div>
<ul><li><a rel="nofollow" class="external text" href="http://users.ece.gatech.edu/~dblough/6102/presentations/gfs-sosp2003.pdf">Originalpaper zum Google File System</a> (PDF; 276 kB)</li>
<li><a rel="nofollow" class="external text" href="https://www.quora.com/What-is-a-Google-File-System">What is a Google File System?</a> (abgerufen am 31. Juli 2017)</li>
<li><a rel="nofollow" class="external text" href="http://www.uio.no/studier/emner/matnat/ifi/INF5100/h10/undervisningsmateriale/gfs.pdf">GOOGLE FILE SYSTEM (GFS)</a> (abgerufen am 31. Juli 2017)</li>
<li><a rel="nofollow" class="external text" href="https://cs.stanford.edu/~matei/courses/2015/6.S897/slides/gfs.pdf">The Google File System</a> (abgerufen am 31. Juli 2017)</li>
<li><a rel="nofollow" class="external text" href="http://www.cs.cornell.edu/courses/cs6464/2009sp/lectures/15-gfs.pdf">GFS: The Google File System</a> (abgerufen am 31. Juli 2017)</li></ul></div><!--htdig_noindex--><div><div class="zim-footer">
Dieser Artikel wurde von <a class="external text" title="Zuletzt bearbeitet am 2025-06-08" href="https://de.wikipedia.org/wiki/?title=Google_File_System&oldid=256813760">Wikipedia</a> herausgegeben. Der Text ist unter <a class="external text" href="https://creativecommons.org/licenses/by-sa/4.0/deed.de">Creative Commons Attribution-Share Alike 4.0</a> verfügbar, sofern nicht anders angegeben. Für die Mediendateien können zusätzliche Bedingungen gelten.
</div>
</div><!--/htdig_noindex--></div>
</div>
</main>
</div>
</div>
</div>
<script src="./_webp_/webpHandler.js"></script>
</body></html>